//package com.zhihuiyanche.common.util;
//
//import java.io.File;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.Calendar;
//import java.util.Collections;
//import java.util.Comparator;
//import java.util.Date;
//import java.util.HashMap;
//import java.util.List;
//import java.util.Map;
//import java.util.Random;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import net.sf.json.JSONArray;
//import net.sf.json.JSONObject;
//
//import org.apache.commons.httpclient.util.DateUtil;
//
//public class MyUtil
//{
//	private final static String COMPONENT_APPID = Constant.getSystemMap().get("wechat_component_appid");
//	/**
//	 * 判断字符串不为空
//	 * 
//	 * @param str
//	 * @return
//	 */
//	public static boolean checkEmpty(String str)
//	{
//		if (null != str && !"".equals(str))
//		{
//			return true;
//		}
//		return false;
//	}
//
//	/**
//	 * 根据传入日期，获取几秒前，几分钟前，几天前
//	 * 
//	 * @param date
//	 * @return
//	 */
//	public static String format(Date date)
//	{
//		long delta = new Date().getTime() - date.getTime();
//		if (delta < 1L * Constant.ONE_MINUTE)
//		{
//			long seconds = toSeconds(delta);
//			return (seconds <= 0 ? 1 : seconds) + Constant.ONE_SECOND_AGO;
//		}
//		if (delta < 45L * Constant.ONE_MINUTE)
//		{
//			long minutes = toMinutes(delta);
//			return (minutes <= 0 ? 1 : minutes) + Constant.ONE_MINUTE_AGO;
//		}
//		if (delta < 24L * Constant.ONE_HOUR)
//		{
//			long hours = toHours(delta);
//			return (hours <= 0 ? 1 : hours) + Constant.ONE_HOUR_AGO;
//		}
//		return DateUtil.formatDate(date, "yyyy-MM-dd HH:mm:ss");
//		// if (delta < 48L * Constant.ONE_HOUR)
//		// {
//		// return "昨天";
//		// }
//		// if (delta < 30L * Constant.ONE_DAY)
//		// {
//		// long days = toDays(delta);
//		// return (days <= 0 ? 1 : days) + Constant.ONE_DAY_AGO;
//		// }
//		// if (delta < 12L * 4L * Constant.ONE_WEEK)
//		// {
//		// long months = toMonths(delta);
//		// return (months <= 0 ? 1 : months) + Constant.ONE_MONTH_AGO;
//		// }
//		// else
//		// {
//		// long years = toYears(delta);
//		// return (years <= 0 ? 1 : years) + Constant.ONE_YEAR_AGO;
//		// }
//	}
//
//	private static long toSeconds(long date)
//	{
//		return date / 1000L;
//	}
//
//	private static long toMinutes(long date)
//	{
//		return toSeconds(date) / 60L;
//	}
//
//	private static long toHours(long date)
//	{
//		return toMinutes(date) / 60L;
//	}
//
//	private static long toDays(long date)
//	{
//		return toHours(date) / 24L;
//	}
//
//	private static long toMonths(long date)
//	{
//		return toDays(date) / 30L;
//	}
//
//	private static long toYears(long date)
//	{
//		return toMonths(date) / 365L;
//	}
//
//	/**
//	 * 根据距离转换：100米 10千米等
//	 * 
//	 * @param distance
//	 * @return
//	 */
//	public static String getDistance(double distance)
//	{
//		int distanceInt = (int) Math.floor(distance);
//		if (distanceInt < 1000)
//		{
//			return distanceInt + "M";
//		}
//		else
//		{
//			return distanceInt / 1000 + "KM";
//		}
//
//	}
//
//	/**
//	 * 格式化单价 11.000：11 11.2123176： 11.21
//	 * 
//	 * @param price
//	 * @return
//	 */
//	public static String formatPrice(String price)
//	{
//
//		if (price.indexOf(".") == -1)
//		{
//			return price;
//		}
//		String result = price.substring(0, price.indexOf("."));
//		String doubleNum = price.substring(price.indexOf(".") + 1, price.length());
//		if (doubleNum.length() == 1 && ("0").equals(doubleNum.substring(0, 1)))
//		{
//			return result;
//		}
//		if (doubleNum.length() == 1 && !("0").equals(doubleNum.substring(0, 1)))
//		{
//			return price;
//		}
//
//		if (doubleNum.substring(0, 1).equals("0") && doubleNum.substring(1, 2).equals("0"))
//		{
//			return result;
//		}
//		else
//		{
//			return result + "." + doubleNum.substring(0, 2);
//		}
//	}
//
//	/**
//	 * 获取当月最大天数
//	 * 
//	 * @param year
//	 * @param month
//	 * @return
//	 */
//	public static int getMaxDay(int year, int month)
//	{
//		Calendar c = Calendar.getInstance();
//		c.set(year, month, 1);
//		c.add(Calendar.DAY_OF_YEAR, -1);
//		return c.get(Calendar.DAY_OF_MONTH);
//	}
//
//	/**
//	 * 获取当前时间的年月日时间戳
//	 * 
//	 * @return
//	 */
//	public static String getDateStr()
//	{
//		Calendar c = Calendar.getInstance();
//		int year = c.get(Calendar.YEAR);
//		int month = c.get(Calendar.MONTH);
//		int day = c.get(Calendar.DAY_OF_MONTH);
//		return year + "year" + (month + 1) + "month" + day;
//	}
//
//	/**
//	 * 时间字符串转换成时间
//	 * 
//	 * @param args
//	 */
//	public static Date parseDate(String str)
//	{
//		Date date = null;
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		try
//		{
//			date = sdf.parse(str);
//		}
//		catch (ParseException e)
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return date;
//	}
//
//	/**
//	 * 2015-05-14
//	 * 
//	 * @param str
//	 * @return
//	 */
//	public static Date parseDay(String str)
//	{
//		Date date = null;
//		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//		try
//		{
//			date = sdf.parse(str);
//		}
//		catch (ParseException e)
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return date;
//	}
//
//	/**
//	 * 时间字符串转换成时间
//	 * 
//	 * @param args
//	 */
//	public static String formatDate(Date date, String format)
//	{
//		String str = null;
//		SimpleDateFormat sdf = new SimpleDateFormat(format);
//		try
//		{
//			str = sdf.format(date);
//		}
//		catch (Exception e)
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return str;
//	}
//
//	/**
//	 * 当前日期减几天
//	 * 
//	 * @param args
//	 */
//	public static Date beforeNowDate(int day)
//	{
//		Date endDate = null;
//		SimpleDateFormat dft = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//		Date beginDate = new Date();
//		Calendar date = Calendar.getInstance();
//		date.setTime(beginDate);
//		date.set(Calendar.DATE, date.get(Calendar.DATE) - day);
//		try
//		{
//			endDate = dft.parse(dft.format(date.getTime()));
//		}
//		catch (ParseException e)
//		{
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		return endDate;
//	}
//
//	public static boolean delPic(String path) throws Exception
//	{
//		if (null == path || "".equals(path))
//		{
//			return true;
//		}
//		String allPath = new MyUtil().getClass().getResource("/").getPath();
//		String root = allPath.substring(0, allPath.indexOf("WEB-INF"));
//		path = root + "pages/weixin/admin/" + path;
//		File uFile = new File(path);
//
//		if (uFile.exists())
//		{
//			uFile.delete();
//		}
//		return true;
//	}
//
//	/**
//	 * 刪除FCK中的內容
//	 * 
//	 * @param content
//	 * @return
//	 * @throws Exception
//	 */
//	public static boolean delFCKPic(String content) throws Exception
//	{
//		List<String> list = filterURL(content);
//		String allPath = new MyUtil().getClass().getResource("/").getPath();
//		String root = allPath.substring(0, allPath.indexOf("WEB-INF"));
//		for (int i = 0; i < list.size(); i++)
//		{
//			String fileNameString = list.get(i);
//			if (new File(root + fileNameString).exists())
//			{
//				new File(root + fileNameString).delete();
//			}
//		}
//		return true;
//	}
//
//	/**
//	 * 正则匹配，查找图片
//	 * 
//	 * @param fckContent
//	 * @return
//	 */
//	public static List<String> filterURL(String fckContent)
//	{
//		List<String> urls = new ArrayList<String>();
//		Pattern p = Pattern.compile(Constant.PICPATTERN);
//		Matcher m = p.matcher(fckContent);
//		while (m.find())
//		{
//			urls.add(m.group());
//		}
//		return urls;
//	}
//
//	public static void main(String[] args) throws Exception
//	{
//		String str = formatDate(new Date(), "MM.dd");
//		System.out.println(str);
//		// String path =
//		// "11<img src='http://127.0.0.1:8080/tzxsaas/img/upload/1433936008850.jpg'  /><img src='http://127.0.0.1:8080/tzxsaas/img/upload/1433936014853.jpg'  />";
//		// delFCKPic(path);
//	}
//
//	/**
//	 * 获取微信菜单真实url
//	 * 
//	 * @param url
//	 * @return
//	 */
//	public static String getRealUrl(String url, String tenantId, String id)
//	{
//		StringBuilder sb = new StringBuilder();
//		sb.append(Constant.WXURL1);
//		Boolean wechatAuthorize = FromRedisUtil.getWechatAuthorize(tenantId);
//		if(wechatAuthorize){
//			//公众号
//			sb.append(WXConfig.getAppId(tenantId));
//			sb.append(Constant.WXURL2);
//			sb.append(url);
//			sb.append(Constant.WXURL3);
//			sb.append("menu");
//			sb.append(id);
//			sb.append("_");
//			sb.append(tenantId);
//			sb.append(Constant.WXURL4);
//			return sb.toString();
//		}else{
//			sb.append(WXThridConfig.getAppId(tenantId));
//			sb.append(Constant.WXURL2);
//			sb.append(url);
////			sb.append(Constant.WXURL3);
//			sb.append("&response_type=code&scope=snsapi_base&state=");
//			sb.append("menu");
//			sb.append(id);
//			sb.append("_");
//			sb.append(tenantId);
//			sb.append("_");
//			sb.append("WXDiSanFang");
//			sb.append("&component_appid=");
//			sb.append(COMPONENT_APPID);
//			sb.append(Constant.WXURL4);
//			return sb.toString();
//		}
//		
//	}
//
//	/**
//	 * 获取微信跳转真实url
//	 * 
//	 * @param url
//	 * @return
//	 */
//	public static String getRedirectRealUrl(String url, String tenantId, String id)
//	{
//		StringBuilder sb = new StringBuilder();
//		Boolean wechatAuthorize = FromRedisUtil.getWechatAuthorize(tenantId);
//		if(wechatAuthorize){
//			sb.append(url);
//			sb.append("&state=menu");
//			sb.append(id);
//			sb.append("_");
//			sb.append(tenantId);
//		}else{
//			sb.append(url);
//			sb.append("&state=menu");
//			sb.append(id);
//			sb.append("_");
//			sb.append(tenantId);
//			sb.append("_");
//			sb.append("WXDiSanFang");
//		}
//		
//
//		return sb.toString();
//
//	}
//
//	/**
//	 * 产生随机数
//	 * 
//	 * @param length
//	 * @return
//	 */
//	public static String randString(int length)
//	{
//		Random r = new Random();
//		String ssource = "0123456789";
//		char[] src = ssource.toCharArray();
//		char[] buf = new char[length];
//		int rnd;
//		for (int i = 0; i < length; i++)
//		{
//			rnd = Math.abs(r.nextInt()) % src.length;
//
//			buf[i] = src[rnd];
//		}
//		return new String(buf);
//	}
//
//	/**
//	 * list指定key值转map key值相同的话，将map值转化成list
//	 * 
//	 * @param list
//	 * @param key
//	 * @return
//	 */
//	public static Map<String, JSONArray> convertToMap(List<JSONObject> list, String key)
//	{
//		Map<String, JSONArray> map = new HashMap<String, JSONArray>();
//		if (list != null && list.size() > 0)
//		{
//			for (JSONObject json : list)
//			{
//				JSONArray temp = map.get(json.getString(key));
//				if (temp == null)
//				{
//					JSONArray newArray = new JSONArray();
//					newArray.add(json);
//					map.put(json.getString(key), newArray);
//				}
//				else
//				{
//					JSONArray tempArray = map.get(json.getString(key));
//					tempArray.add(json);
//					map.put(json.getString(key), tempArray);
//				}
//			}
//		}
//		return map;
//	}
//
//	/**
//	 * list指定字段排序
//	 * 
//	 * @param list
//	 * @param key
//	 * @return
//	 */
//	@SuppressWarnings("unchecked")
//	public static void sortList(JSONArray jsonArray, final String key)
//	{
//		Collections.sort(jsonArray, new Comparator<JSONObject>()
//		{
//			@Override
//			public int compare(JSONObject o1, JSONObject o2)
//			{
//				Integer a = (Integer) o1.getInt(key);
//				Integer b = (Integer) o2.getInt(key);
//				// 升序
//				return a.compareTo(b);
//			}
//		});
//	}
//
//	/**
//	 * 判断某个字符串是否存在于数组中
//	 * 
//	 * @param stringArray
//	 *            原数组
//	 * @param source
//	 *            查找的字符串
//	 * @return 是否找到
//	 */
//	public static boolean contains(String[] stringArray, String source)
//	{
//		// 转换为list
//		List<String> tempList = Arrays.asList(stringArray);
//		// 利用list的包含方法,进行判断
//		if (tempList.contains(source))
//		{
//			return true;
//		}
//		else
//		{
//			return false;
//		}
//	}
//}